package br.affero.util;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 * Classe de utilitários JSF
 * @author Paulo
 *
 */
public class JsfUtil {

        /**
         * Obter parametro do escopo request através da chave
         * @param key chave (identificação) do parametro
         * @return String valor do parametro
         */
        public static String getRequestParameter(String key) {
        return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(key);
    }
        
        /**
         * Adiciona uma mensagem de erro no faces
         * @param msg mensagem de erro
         */
        public static void addErrorMessage(String msg) {
                FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                msg, msg);
                FacesContext.getCurrentInstance().addMessage(null, facesMsg);
        }
        
        /**
         * Adiciona uma mensagem de erro no faces
         * @param clientId identificador do componente
         * @param msg mensagem de erro
         */
        public static void addErrorMessage(String clientId, String msg) {
                FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                msg, msg);
                FacesContext.getCurrentInstance().addMessage(clientId, facesMsg);
        }

        /**
         * Adiciona uma mensagem de erro no faces
         * @param context contexto do faces
         * @param clientId identificador do componente
         * @param msg mensagem de erro
         */
        public static void addErrorMessage(FacesContext context, String clientId, String msg) {
                FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                msg, msg);
                context.addMessage(clientId, facesMsg);
        }
        
        /**
         * Adiciona uma mensagem de informação de sucesso de operação
         * @param msg mensagem de sucesso
         */
        public static void addSuccessMessage(String msg) {
                FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO,
                                msg, msg);
                FacesContext.getCurrentInstance().addMessage("successInfo", facesMsg);
        }
}
